#include<stdio.h>
#include<stdlib.h>
typedef struct Vat{
    float thoigian;
    int thutu;
};
Vat vatthe[4001];
int n,t,i;
int k=0,arr[10000];
void input(){
    float u;
    FILE *fp=fopen("STARTREK.INP","r");
    fscanf(fp,"%d%d",&n,&t);
    for(i=0;i<n;i++)fscanf(fp,"%f",&vatthe[i].thoigian);
    for(i=0;i<n;i++){
        fscanf(fp,"%f",&u);
        vatthe[i].thoigian/=u;
        vatthe[i].thutu=i+1;
    }
    fclose(fp);
}
int sosanh(const void *a,const void *b){
    return (*((Vat*)a)).thoigian>((*((Vat*)b))).thoigian;
}
int process(){
    int i=0,j=0,to=0;
    do{
        while(vatthe[i].thoigian<to && i<n)i++;
        if(i==n)break;
        arr[k++]=vatthe[i].thutu;
        i++;
        to+=t;
    }while(1);
}
void output(){
    FILE *fp=fopen("STARTREK.OUT","w");
    fprintf(fp,"%d",k);
    for(int i=0;i<k;i++)fprintf(fp," %d",arr[i]);
    fclose(fp);
}
int main(){
    input();
    qsort(vatthe,n,sizeof(Vat),sosanh);
    process();
    output();
    return 0;
}    
    
